home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 1 / Gekikoh Dennoh Club Vol. 1 (Japan).7z / Gekikoh Dennoh Club Vol. 1 (Japan) (Track 1).bin / kowin / dockob / sin.kob < prev    next >
Text File  |  1995-11-13  |  4KB  |  146 lines

  1. /**************************************
  2. /* 神経衰弱 for こB!   by v914AKSTN *
  3. /**************************************
  4.  
  5.  
  6. /********************
  7. /* 起動時の初期設定 *
  8. /********************
  9. dim int crd(13*4-1)
  10. dim int mekuri(1)
  11. int mk,maisu
  12. int i,c,c1,c2
  13. int starttime
  14. dim str mark(3)={"S","H","C","D"}
  15. dim str suit(12)={"A","2","3","4","5","6","7","8","9","10","J","Q","K"}
  16. dim str atari(3)={
  17.     "当たりでっせ!!!",
  18.     "やりよんのおぉ",
  19.     "おっしゃ! ええ感じやないか",
  20.     "その調子や、その調子っ!"
  21. }
  22. str mes[255]
  23. int ms
  24.  
  25.  
  26. /**********************
  27. /* カードのシャッフル *
  28. /**********************
  29. for i=0 to 51:crd(i)=64+i:next
  30. for i=0 to 51
  31.     c1=int(rnd()*52)
  32.     c=crd(c1):crd(c1)=crd(i):crd(i)=c
  33. next
  34.  
  35. mk=0        /* めくってる最中の枚数
  36. maisu=13*4    /* 残り枚数
  37.  
  38.  
  39. /******************************
  40. /* ウィンドウ下部のメッセージ *
  41. /******************************
  42. ITIME=50:ms=0        /* メッセージをコントロールするパラメータ
  43. mes="神経衰弱 for こB!"
  44.  
  45.  
  46. /******************************
  47. /* ウィンドウオープン!!!! *
  48. /******************************
  49. WindowTitleOpen( 0, WINX, WINY, (16+4)*13+8*2, (32+4)*4+8*2+16+8, 0, "神経衰弱 for こB!", 3 )
  50. starttime=IntervalTime()
  51. end
  52. /******************
  53. /* 初期設定終わり *
  54. /******************
  55.  
  56.  
  57.  
  58. /******************************************
  59. /* マウスでクリックされた時、呼び出される *
  60. /******************************************
  61. func Emouse(wno)
  62.     int i,c
  63.     if info_Lon=0 then return(0)
  64.                 /* 0 を返しておけば、右クリックでメニューが出る
  65.  
  66.     if mk=2 then {        /* めくった奴を戻す
  67.         for i=0 to 1
  68.             c=mekuri(i)        /* めくった位置
  69.             crd(c)= crd(c) or 64    /* 裏向きフラグ
  70.             DrawSymbol( wno, (c mod 13)*20+8, (c\13)*36+8, "■", 9, 16 )
  71.             DrawSymbol( wno, (c mod 13)*20+8, (c\13)*36+24, "■", 9, 16 )
  72.         next
  73.         mk=0
  74.         return(1)
  75.     }
  76.  
  77.         /* クリック位置から、カードを探す
  78.     if (info_x mod 20)<=8 then return(0)
  79.     if (info_y mod 36)<=8 then return(0)
  80.     c=(info_x\20)+(info_y\36)*13
  81.     if c>13*4 then return(0)
  82.  
  83.     if crd(c)<64 then return(0)    /* もう、めくってた
  84.  
  85.     i=crd(c) and 63        /* 表向き
  86.     crd(c)=i
  87.         DrawSymbol( wno, (c mod 13)*20+8, (c\13)*36+8, mark(i\13), 9, 16 )
  88.         DrawSymbol( wno, (c mod 13)*20+8, (c\13)*36+24, suit(i mod 13), 9, 16 )
  89.     mekuri(mk)=c
  90.     mk=mk+1
  91.  
  92.     if mk=2 then {                /* 一致判定
  93.         if (crd(mekuri(0)) mod 13) = (crd(mekuri(1)) mod 13) then {
  94.  
  95.             mk=0            /* 一致したので裏返す必要無し
  96.             maisu=maisu-2        /* 残り枚数減らす
  97.             mes=atari(crd(mekuri(0))\13):ms=0:ITIME=25
  98.                         /* 当たりメッセージ設定
  99.  
  100.             if maisu=0 then {    /* all clear メッセージ!
  101.                 i=(IntervalTime()-starttime)/100
  102.                 mes="やりましたな! "+str$(i)+"秒ですぞ!!"
  103.                 ms=0:ITIME=50
  104.             }
  105.  
  106.         }
  107.     }
  108. endfunc
  109.  
  110.  
  111.  
  112. /******************************************
  113. /* 再描画する必要が生じた時、呼び出される *
  114. /******************************************
  115. func Eredraw(wno)
  116.     int i
  117.  
  118.     DrawClear( wno, 1 )        /* ウィンドウを灰色でクリア
  119.  
  120.     for i=0 to 51
  121.         if crd(i)>=64 then {    /* 裏向きのカードを描く
  122.             DrawSymbol( wno, (i mod 13)*20+8, (i\13)*36+8, "■", 9, 16 )
  123.             DrawSymbol( wno, (i mod 13)*20+8, (i\13)*36+24, "■", 9, 16 )
  124.         } else {        /* 表向きのカードを描く
  125.             DrawSymbol( wno, (i mod 13)*20+8, (i\13)*36+8, mark(crd(i)\13), 9, 16 )
  126.             DrawSymbol( wno, (i mod 13)*20+8, (i\13)*36+24, suit(crd(i) mod 13), 9, 16 )
  127.         }
  128.     next
  129. endfunc
  130.  
  131.  
  132.  
  133.  
  134. /**********************************
  135. /* ITIME/100 秒ごとに呼び出される *
  136. /**********************************
  137. func Einterval(wno)
  138.     ms=ms+2
  139.     DrawSymbol( wno, 8, 8+4*36+8, mid$( space$(36)+mes+space$(36),ms,35 ), 9, 16 )
  140.     if ms>19+len(mes)/2 then ITIME=-1
  141. endfunc
  142.  
  143. /*******************************
  144. /* プログラム終わり   H7/11/12 *
  145. /*******************************
  146.